Skip to content

track mod enable/disable/remove and install kind in mixpanel#23649

Merged
IDCs merged 3 commits into
masterfrom
task/laz-673-2
Jul 13, 2026
Merged

track mod enable/disable/remove and install kind in mixpanel#23649
IDCs merged 3 commits into
masterfrom
task/laz-673-2

Conversation

@IDCs

@IDCs IDCs commented Jul 8, 2026

Copy link
Copy Markdown
Contributor
  • Add mods_state_changed and mods_removed events, gated to Nexus mods like the other per-mod events, carrying a ModChangeReason (user_manual, variant_replace, version_update, profile_replace, collection_update, collection_uninstall, stop_managing_game, health_check) threaded through IRemoveModOptions and IEnableOptions from the remove/enable call sites.
  • Add install_kind (fresh / version_update / reinstall / variant / profile_replace) to the mods_installation_* events, classified in InstallManager and carried to the terminal events via InstallContext.
  • Report mods_state_changed.duration_ms as time spent in the prior state in both directions; add a durable disabledTime to profile mod-state alongside enabledTime.
  • Base mods_download_completed duration_ms on the durable startTime.
  • Move ReplaceChoice/IReplaceChoice to their own types file.
  • Add test harness (makeModChangeHarness/modChangeTest, makeProfile) and coverage for classifyInstallKind and the mod-change analytics.

closes LAZ-673

- Add mods_state_changed and mods_removed events, gated to Nexus mods like the
  other per-mod events, carrying a ModChangeReason (user_manual, variant_replace,
  version_update, profile_replace, collection_update, collection_uninstall,
  stop_managing_game, health_check) threaded through IRemoveModOptions and
  IEnableOptions from the remove/enable call sites.
- Add install_kind (fresh / version_update / reinstall / variant / profile_replace)
  to the mods_installation_* events, classified in InstallManager and carried to
  the terminal events via InstallContext.
- Report mods_state_changed.duration_ms as time spent in the prior state in both
  directions; add a durable disabledTime to profile mod-state alongside enabledTime.
- Base mods_download_completed duration_ms on the durable startTime.
- Move ReplaceChoice/IReplaceChoice to their own types file.
- Add test harness (makeModChangeHarness/modChangeTest, makeProfile) and coverage
  for classifyInstallKind and the mod-change analytics.

closes LAZ-673
@IDCs IDCs self-assigned this Jul 8, 2026
@IDCs
IDCs requested a review from a team as a code owner July 8, 2026 11:09
IDCs added 2 commits July 8, 2026 12:25
It's timing out when the full suite is running and the emit-helper tests
already cover this path.
@IDCs
IDCs merged commit c2c9c22 into master Jul 13, 2026
11 checks passed
@IDCs
IDCs deleted the task/laz-673-2 branch July 13, 2026 02:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants